import PowerUp from './PowerUp.js'

// 武器升级道具类
export default class WeaponPowerUp extends PowerUp {
  constructor(x, y) {
    super(x, y, 'weapon')
    this.duration = 10000 // 武器升级持续10秒
    this.rotationSpeed = 0.08 // 更快的旋转速度
  }

  loadImage() {
    // 加载武器升级道具图像
    this.image.src =
      ''
  }

  // 获取光晕颜色
  getGlowColor() {
    return `rgba(255, 100, 0, ${this.glowOpacity})`
  }

  apply(player, game) {
    super.apply(player, game)

    // 应用武器升级效果
    if (!player.weaponLevel) {
      player.weaponLevel = 1
    }

    // 最高升级到3级
    if (player.weaponLevel < 3) {
      player.weaponLevel++
    }

    // 设置武器升级效果的持续时间
    if (player.weaponTimer) {
      clearTimeout(player.weaponTimer)
    }

    // 添加武器升级状态到游戏状态
    game.addStatusEffect({
      type: 'weapon',
      level: player.weaponLevel,
      duration: this.duration,
      startTime: Date.now(),
    })

    // 显示提示信息
    game.showMessage(`武器升级到 ${player.weaponLevel} 级！`, 2000)

    // 设置定时器，在持续时间结束后恢复武器等级
    player.weaponTimer = setTimeout(() => {
      player.weaponLevel = Math.max(1, player.weaponLevel - 1)

      // 如果武器等级降为1，则移除状态效果
      if (player.weaponLevel === 1) {
        game.removeStatusEffect('weapon')
        game.showMessage('武器升级效果已结束', 1500)
      } else {
        // 更新状态效果
        game.updateStatusEffect('weapon', {
          level: player.weaponLevel,
        })
        game.showMessage(`武器降级到 ${player.weaponLevel} 级`, 1500)
      }
    }, this.duration)
  }
}
